package com.xxx.mall.util;

import cn.hutool.core.util.StrUtil;

import java.util.regex.Pattern;

/**
 * @author 邢晨旭
 * {@code @date} 2023/11/15
 * 正则工具类
 */
public class PrincipalUtil {
    /**
     * 手机正则 以1开头,11位数字
     */
    public static final String MOBILE_REGEXP = "1[0-9]{10}";


    /**
     * (?!\d+$)([a-zA-Z0-9_]{4,16})
     * 1. 用户名不能为纯数字
     * 2. 由数字字母下划线 4-16位组成
     * 3. 不能以数字开头
     */
    public static final String USER_NAME_REGEXP = "(?!\\d+$)([a-zA-Z0-9_]{4,16})";

    /**
     * 邮箱正则
     */
    public static final String EMAIL_REGEXP = "[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?";

    public static boolean isMatching(String regexp, String value) {
        if (StrUtil.isBlank(value)) {
            return false;
        }
        return Pattern.matches(regexp, value);
    }

    /**
     * 是否是用户名
     * @param value 输入值
     * @return 匹配结果
     */
    public static boolean isUserName(String value) {
        return isMatching(USER_NAME_REGEXP, value);
    }
}
